package com.freemalll.merchant.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.freemalll.merchant.domain.dto.merchantReport.MerchantAccountEditDto;
import com.freemalll.merchant.domain.dto.merchantReport.MerchantRateEditDto;
import com.freemalll.merchant.domain.dto.merchantReport.MerchantReportPageDto;
import com.freemalll.merchant.domain.entity.MerMerchantAuditEditLog;
import com.freemalll.merchant.domain.vo.merchantReport.MerchantBusinessParametersVo;
import com.freemalll.merchant.domain.vo.merchantReport.MerchantPerformanceVo;
import com.freemalll.merchant.domain.vo.merchantReport.MerchantReportPageVo;
import com.freemalll.merchant.domain.vo.merchantReport.MerchantReportVo;
import jakarta.validation.Valid;

import java.util.List;

/**
 * @author songshixiong
 * @ClassName MerchantReportService
 * @description:
 * @date 2025年06月10日
 * @version: 1.0
 */
public interface MerchantReportService {


    /**
     * 分页
     *
     * @param dto
     * @return
     */
    Page<MerchantReportPageVo> page(MerchantReportPageDto dto);

    /**
     * 根据商户ID获取商户报告
     *
     * @param merId
     * @return
     */
    MerchantReportVo getMerchantBasicInfo(String merId);

    /**
     * 商户业务参数
     *
     * @param merId
     * @return
     */
    MerchantBusinessParametersVo getMerchantBusinessParameters(String merId);

    /**
     * 商户业务表现
     *
     * @param merId
     * @param tabType
     * @return
     */
    MerchantPerformanceVo getMerchantPerformance(String merId, String tabType);

    /**
     * 获取变更日志
     *
     * @param merId
     * @param changeType
     * @return
     */
    List<MerMerchantAuditEditLog> getChangeRecord(String merId, String changeType);

    /**
     * 费率启用状态编辑
     *
     * @param dto
     */
    void rateActivationStatus(MerchantRateEditDto dto);

    /**
     * 银行账户启用状态编辑
     *
     * @param dto
     */
    void accountEnableStatusEdit(@Valid MerchantAccountEditDto dto);


}
